package cn.zyq.ykb.system.pay.core.client.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 支付通知 Response DTO
 *
 * @author 芋道源码
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PayOrderTransferRespDTO implements Serializable {

    /**
     * 支付订单号（支付模块的）
     */
    private String outTradeNo;
    /**
     * 支付渠道编号(支付成功后的第三方订单编号)
     */
    private String channelOrderNo;
    /**
     * 转账成功时间
     */
    private Date successTime;

    /**
     * 通知的原始数据
     * <p>
     * 主要用于持久化，方便后续修复数据，或者排错
     */
    private String data;

    /**
     * TODO @jason 结合其他的渠道定义成枚举,
     * alipay
     * 转账单据状态。
     * SUCCESS（该笔转账交易成功）：成功；
     * FAIL：失败（具体失败原因请参见error_code以及fail_reason返回值）；
     */
    private String tradeStatus;

    /**
     *
     * 支付渠道支付资金流水号
     */
    private String channelFundOrderId;

}
